Eine Meldung auf dem Bildschirm anzeigen
Meldungen an den Benützer bieten sich in vielen Situationen an. Wenn Ihr Programm "ein Problem hat", machen Sie darauf aufmerksam. Läuft eine längere Verarbeitung, verkürzen Sie die Wartezeit und geben dem Benützer die Sicherheit, daß das Programm arbeitet. Wir unterscheiden:
"MsgBox"-Programm-unterbrechende Meldungen
VBA stellt uns hier die Funktion "MsgBox" zur Verfügung, deren Erscheinungsbild Sie aus der interaktiven Arbeit mit EXCEL und anderen Windows-Programmen sicher schon kennen: "MsgBox" zeigt eine Meldung in einem Dialogfeld an und wartet auf die Auswahl einer Schaltfläche. Die Funktion liefert einen Wert, der die ausgewählte Schaltfläche bestimmt.
Das folgende Beispiel für das Programmieren eines Meldungs-Dialogs finden Sie in der Datei "Meldung.xls". |
Sub MeldungsDlg_Anzeigen() Mldg = "Wollen Sie fortfahren ?" ' Meldung definieren. Stil = vbYesNo + vbCritical + vbDefaultButton1 ' Schaltflächen definieren. Title = "MeldungsDlg-Demo" ' Titel definieren. Help = "DEMO.HLP" ' Hilfedatei definieren. Kontext = 1000 ' Kontext für Thema definieren ' Meldung anzeigen. Result = MsgBox(Mldg, Stil, Title, Help, Kontext) If Result = vbYes Then ' Benutzer hat "Ja" gewählt. TestZeichenF = "Ja" ' entsprechende Operationen ausführen. Else ' Benutzer hat "Nein" gewählt. TestZeichenF = "Nein" ' entsprechende Operationen ausführen. End If MsgBox "<<Ergebnis>> Is: " & Result End Sub
Syntax
MsgBox(Prompt[,buttons][,title][,helpfile,context])
Elemente
Die Funktion MsgBox verwendet die folgenden benannten Argumente:
Argument | Beschreibung |
Prompt | Zeichenfolgenausdruck, der als Meldung im Dialogfeld erscheint. Die Maximallänge von Meldung ist etwa 1024 Zeichen, abhängig von der Breite der verwendeten Zeichen. Wenn Meldung aus mehreren Zeilen bestehen soll, müssen Sie die Zeilen mit einem Wagenrücklaufzeichen (Zeichencode 13) oder einer Folge aus Wagenrücklaufzeichen und Zeilenvorschubzeichen (Zeichencode 10) voneinander trennen. |
Buttons | Numerischer Ausdruck mit einem kombinierten Wert, der die Anzahl und den Typ der Schaltflächen, das verwendete Symbol, die voreingestellte Schaltfläche und die Bindung des Dialogfelds angibt. Wenn Sie Schaltflächen nicht angeben, ist die Voreinstellung 0. |
Title | Zeichenfolgenausdruck, der in der Titelleiste des Dialogfeldes erscheint. Wenn Sie Title nicht angeben, erscheint kein Text in der Titelleiste. |
Helpfile | Zeichenfolgenausdruck, der die Hilfedatei mit der kontextbezogenen Hilfe für das Dialogfeld angibt. Wenn Sie Helpfile angeben, müssen Sie auch Context angeben. |
Context | Numerischer Ausdruck mit der Zahl für den Hilfekontext, die der Autor der Hilfe für das entsprechende Hilfethema vergeben hat. Wenn Sie Context angeben, müssen Sie auch Helpfile angeben. |
Die Werte für das benannte Argument "Buttons" sind:
Konstante | Wert | Beschreibung |
vbOKOnly | 0 | Nur "OK" anzeigen. |
vbOKCancel | 1 | "OK" und "Abbrechen" anzeigen. |
vbAbortRetryIgnore | 2 | "Abbrechen", "Wiederholen" und "Ignorieren" anzeigen. |
vbYesNoCancel | 3 | "Ja", "Nein" und "Abbrechen" anzeigen. |
vbYesNo | 4 | "Ja", und "Nein" anzeigen. |
vbRetryCancel | 5 | "Wiederholen" und "Abbrechen" anzeigen. |
vbCritical | 16 | Stop-Symbol anzeigen. |
vbQuestion | 32 | Fragezeichen-Symbol anzeigen. |
vbExclamation | 48 | Ausrufezeichen-Symbol anzeigen. |
vbInformation | 64 | Info-Symbol anzeigen. |
vbDefaultButton1 | 0 | Erste Schaltfläche ist Voreinstellung. |
vbDefaultButton2 | 256 | Zweite Schaltfläche ist Voreinstellung. |
vbDefaultButton3 | 512 | Dritte Schaltfläche ist Voreinstellung. |
vbApplicationModal | 0 | An die Anwendung gebunden. Der Benutzer muß das Meldungsfeld beantworten, bevor er seine Arbeit mit der aktuellen Anwendung fortsetzen kann. |
vbSystemModal | 4096 | An das System gebunden. Alle Anwendungen werden angehalten, bis der Benutzer das Meldungsfeld beantwortet. |
Die erste Gruppe von Werten (0-5) beschreibt die Anzahl und den Typ der im Dialogfeld angezeigten Schaltflächen. Die zweite Gruppe (16, 32, 48, 64) beschreibt die Symbolart. Die dritte Gruppe (0, 256, 512) legt die voreingestellte Schaltfläche fest. Die vierte Gruppe (0, 4096) legt fest, in welcher Form das Dialogfeld gebunden ist. Verwenden Sie beim Kombinieren von Zahlen zu einem Gesamtwert für das Argument "Buttons" nur eine Zahl aus jeder Gruppe.
Hinweis Diese Konstanten sind durch Visual Basic festgelegt. Daher können Sie sie an einer beliebigen Stelle im Code anstelle der tatsächlichen Werte verwenden.
RÜCKGABEWERTE
Konstante | Wert | gedrückte Schaltfläche |
vbOK | 1 | "OK" |
vbCancel | 2 | Abbrechen |
vbAbort | 3 | Abbruch |
vbRetry | 4 | Wiederholen |
vbIgnore | 5 | Ignorieren |
vbYes | 6 | Ja |
vbN0 | 7 | Nein |
Anmerkungen
Wenn Sie "Helpfile" und "Context" angeben, erscheint die Schaltfläche "Hilfe" automatisch im Dialogfeld.
Wenn im Dialogfeld die Schaltfläche "Abbrechen" erscheint, hat das Drücken der Taste ESC dieselbe Wirkung wie das Klicken auf "Abbrechen". Wenn im Dialogfeld die Schaltfläche "Hilfe" erscheint, wird darüber hinaus eine kontextbezogene Hilfe zur Verfügung gestellt. Ein Wert wird aber nur zurückgegeben, wenn eine der anderen Schaltflächen ausgewählt wird.
Nicht-unterbrechende Meldung
Die Statusleiste-am unteren Rand des EXCEL-Fensters-versorgt Sie während der interaktiven Arbeit laufend mit Informationen über das, was EXCEL gerade tut. Mit Hilfe der Eigenschaft "Statusbar" können Sie, während eine VBA-Programm läuft, dort Meldungen anzeigen; das Programm läuft weiter.
DIE STATUSBAR-EIGENSCHAFT
Syntax
Application. StatusBar
Beispiel
In diesem Beispiel werden die Zahlen von 1 bis 400 erzeugt und in der Statuszeile angezeigt. Danach wird wieder auf die Anzeige der normalen EXCEL-Statusmeldungen umgeschaltet:
Sub StatusBar() ' Hält fest, ob die Statusleiste angezeigt wird oder nicht AlterZustandStatusLeiste = Application.DisplayStatusBar ' Statusleiste auf alle Fälle anzeigen Application.DisplayStatusBar = True ' Selbst-definierte Statusmeldung anzeigen ' Arbeit verrichten, während Anzeige sichtbar ist For Zähler = 1 To 400 Application.StatusBar = Zähler Next ' Selbst-definierte Statusmeldung löschen Application.StatusBar = False ' Alten Zustand (angezeigt/nicht angezeigt) ' wiederherstellen Application.DisplayStatusBar = AlterZustandStatusLeiste End Sub
DIE "DISPLAYSTATUSBAR"-EIGENSCHAFT
True, wenn die Statusleiste angezeigt wird, False, wenn Sie fehlt. Schreib-/Lese-Zugriff.
Nicht-unterbrechende Meldung in EXCEL-Tabelle
An der Statuszeilen-Meldung werden Sie zurecht kritisieren, daß sie kaum bemerkt wird. Mit ein wenig Arbeit können Sie aber eine deutlich sichtbare Meldung erzeugen. Wir benötigen dazu ein EXCEL-Tabellenblatt und ein wenig Code. Angenommen, die Meldung soll in Zelle B4 erscheinen, dann müssen wir schreiben:
Sub MeldungInTabelle() Set AltePosition = ActiveCell Sheets("Tabelle1").Select For Zähler = 1 To 200 [B4].Value = Zähler Next Application.GoTo Reference:=AltePosition End Sub
In der Zeile "Set AltePosition..." halten wir fest, in welcher Tabelle der
Cursor gerade wo steht. Dorthin gehen wir in der Zeile "Application.Goto..."
zurück.
Copyright © by JOANNEUM RESEARCH Forschungsgesellschaft mbH |